﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Vds2465Telegrams
{
	[TestClass]
	public class UserDataCommon_Test
	{
		[TestMethod]
		[Owner("Frank Eppink")]
		public void Test01_HexByteArrayToString()
		{
			{
				string resultString = UserDataCommon.HexByteArrayToString(null, null);
				Assert.IsNotNull(resultString);
			}

			{
				string resultString = UserDataCommon.HexByteArrayToString(String.Empty, new byte[0]);
				Assert.IsNotNull(resultString);
			}

			{
				string resultString = UserDataCommon.HexByteArrayToString("H", new byte[] { 0x01 });
				Assert.IsNotNull(resultString);
			}

			{
				string resultString = UserDataCommon.HexByteArrayToString("Heidenei", new byte[] { 0x01, 0x02, 0x03 });
				Assert.IsNotNull(resultString);
			}
		}

		[TestMethod]
		[Owner("Frank Eppink")]
		public void Test02_Equals2ByteArrays()
		{
			{
				byte[] bytes01 = null;
				byte[] bytes02 = null;
				Assert.IsTrue(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = null;
				byte[] bytes02 = new byte[0];
				Assert.IsTrue(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[0];
				byte[] bytes02 = null;
				Assert.IsTrue(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[0];
				byte[] bytes02 = new byte[0];
				Assert.IsTrue(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = null;
				byte[] bytes02 = new byte[] { 0xff };
				Assert.IsFalse(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[] { 0xff };
				byte[] bytes02 = null;
				Assert.IsFalse(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[0];
				byte[] bytes02 = new byte[] { 0xff };
				Assert.IsFalse(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[] { 0xff };
				byte[] bytes02 = new byte[0];
				Assert.IsFalse(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[] { 0xff };
				byte[] bytes02 = new byte[] { 0xff };
				Assert.IsTrue(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[] { 0xff, 0x45 };
				byte[] bytes02 = new byte[] { 0xff, 0x45 };
				Assert.IsTrue(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}

			{
				byte[] bytes01 = new byte[] { 0xff, 0x45 };
				byte[] bytes02 = new byte[] { 0xff, 0x45, 0x54 };
				Assert.IsFalse(UserDataCommon.Equals2ByteArrays(bytes01, bytes02));
			}
		}

		[TestMethod]
		[Owner("Frank Eppink")]
		public void Test03_GetHashCode_ByteArray()
		{
			{
				byte hashCode = UserDataCommon.GetHashCode_ByteArray(null);				
			}

			{
				byte hashCode = UserDataCommon.GetHashCode_ByteArray(new byte[0]);				
			}

			{
				byte hashCode = UserDataCommon.GetHashCode_ByteArray(new byte[] { 0x01 });				
			}

			{
				byte hashCode = UserDataCommon.GetHashCode_ByteArray(new byte[] { 0x01, 0x02, 0x03 });				
			}
		}
	}
}
